using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Gratamira.CapaNegocio;
using Infragistics.Win.UltraWinEditors;
using Infragistics.Win.UltraWinMaskedEdit;

namespace Gratamira.Presentacion
{
    
    public partial class frmMaeTercero : frmBaseMaestra, IBaseMaestra
    {
       
        private Tercero mTercero = new Tercero();
        private BindingSource fuenteEnlace = new BindingSource();

        public frmMaeTercero(long pTerceroID, estadoPantalla pModoPantalla)
        {
            InitializeComponent();
            llenarListas();
            if (pModoPantalla != estadoPantalla.Insertar)
            {
                mTercero = new Tercero(pTerceroID);
            }
            else
            {
                mTercero = new Tercero();
            }
            base.Estado = pModoPantalla;
            this.Text = Usuario.Empresa + " - Maestra Tercero";
        }
        private void llenarListas()
        {
            Pais p = new Pais();
            ddlPais.DataSource = p.leerTodosLosPaises();
            ddlPais.DisplayMember = "Nombre";
            ddlPais.ValueMember = "PaisID";
            ddlPais.Value = 506;
        }

        public override void deshabilitarControles()
        {
            //No permite modificar el contenido de los controles
            txtTerceroID.Enabled = false;
            txtNombre.Enabled = false;
            txtNombreLargo.Enabled = false;
            ddlPais.Enabled = false;
            txtTelefono.Enabled = false;
            txtEmail.Enabled = false;
            txtContacto.Enabled = false;
            txtDireccion.Enabled = false;
            txtObservaciones.Enabled = false;
        }

        public override void habilitarControles()
        {
            //Permite modificar el contenido de los controles
            if (base.Estado == estadoPantalla.Insertar)
            {
                txtTerceroID.Enabled = true;
            }
            txtNombre.Enabled = true;
            txtNombreLargo.Enabled = true;
            ddlPais.Enabled = true;
            txtTelefono.Enabled = true;
            txtEmail.Enabled = true;
            txtContacto.Enabled = true;
            txtDireccion.Enabled = true;
            txtObservaciones.Enabled = true;
        }

        public override void unirDatosClaseForma()
        {
            fuenteEnlace.DataSource = mTercero;
            txtTerceroID.DataBindings.Add("Value", fuenteEnlace, "TerceroID");
            txtNombre.DataBindings.Add("Text", fuenteEnlace, "Nombre");
            txtNombreLargo.DataBindings.Add("Text", fuenteEnlace, "NombreLargo");
            ddlPais.DataBindings.Add("Value", fuenteEnlace, "PaisID");
            txtTelefono.DataBindings.Add("Value", fuenteEnlace, "Telefono" );
            txtEmail.DataBindings.Add("Text", fuenteEnlace, "Email");
            txtContacto.DataBindings.Add("Text", fuenteEnlace, "Contacto");
            txtDireccion.DataBindings.Add("Text", fuenteEnlace, "Direccion" );
            txtObservaciones.DataBindings.Add("Text", fuenteEnlace, "Observacion");
            if (base.Estado == estadoPantalla.Insertar)
            {
                limpiarControles();
            }

        }

        public override bool salvarCambios()
        {
            mTercero.UsuarioCreacion = Usuario.NombreUsuario; ;
            mTercero.UsuarioModificacion = Usuario.NombreUsuario; ;
            return mTercero.insertarTercero();
        }

        public override void actualizarCambios()
        {
            mTercero.UsuarioModificacion = Usuario.NombreUsuario; 
            mTercero.actualizarTercero();
        }

        public override void limpiarControles()
        {
            mTercero.TerceroID = 0;
            mTercero.Nombre = "";
            mTercero.NombreLargo ="";
            mTercero.PaisID = 506;
            mTercero.Telefono = 0;
            mTercero.Email = "";
            mTercero.Contacto = "";
            mTercero.Direccion = "";
            mTercero.Observacion = "";
            fuenteEnlace.ResetBindings(false);
            txtTerceroID.Focus();
        }

        public override void leerDatosAuditoria(out string pUsuaCrea, out string pFechCrea, out string pUsuaModi, out string pFechModi)
        {
            pUsuaCrea = mTercero.UsuarioCreacion;
            pUsuaModi = mTercero.UsuarioModificacion;
            pFechCrea = mTercero.FechaCreacion;
            pFechModi = mTercero.FechaModificacion;
        }

        public override bool hayDatosModificados()
        {
            return mTercero.Modificada;
        }

        public override bool verificarDatos()
        {
            if (utilidadesPresentacion.verificarContenido(txtTerceroID, epTercero) && utilidadesPresentacion.verificarContenido(txtNombre, epTercero))
            {
                return true;
            }
            else
            {
                return false;
            }
        }

        private void txtIdentificacion_Enter(object sender, EventArgs e)
        {
            txtTerceroID.SelectAll();
        }

        private void txtNombre_Enter(object sender, EventArgs e)
        {
            txtNombre.SelectAll();
        }

        private void txtNombreLargo_Enter(object sender, EventArgs e)
        {
            txtNombreLargo.SelectAll();
        }

        private void txtTelefono_Enter(object sender, EventArgs e)
        {
            txtTelefono.SelectAll();
        }

        private void txtContacto_Enter(object sender, EventArgs e)
        {
            txtContacto.SelectAll();
        }

        private void txtEmail_Enter(object sender, EventArgs e)
        {
            txtEmail.SelectAll();
        }

        private void txtDireccion_Enter(object sender, EventArgs e)
        {
            txtDireccion.SelectAll();
        }

        private void txtObservaciones_Enter(object sender, EventArgs e)
        {
            txtObservaciones.SelectAll();
        }

        private void ddlPais_ValueChanged(object sender, EventArgs e)
        {
            mTercero.PaisID = Convert.ToInt32(ddlPais.Value);
        }


    }
}